using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication5.UILayer
{
    public partial class frmOrdenesAtencion : Form
    {
        public frmOrdenesAtencion()
        {
            InitializeComponent();
        }

        private ServiciosWeb.Service servicioweb = new ServiciosWeb.Service();

        private DataTable resultado = new DataTable();
        private bool bandera;

        private void btnBuscarAfiliado_Click(object sender, EventArgs e)
        {
            try
            {
                resultado = null;
                resultado = servicioweb.afiliadosObtenerAfiliado(txtDNIAfiliado.Text);
                bandera = true;

                if (resultado.Rows.Count > 0)
                {
                    txtApellido.Text = resultado.Rows[0]["Apellido"].ToString();
                    txtNombre.Text = resultado.Rows[0]["Nombre"].ToString();
                    groupBox1.Text = "Datos del afiliado";
                }
                else
                {
                    resultado = servicioweb.familiaresBuscarFamiliar(txtDNIAfiliado.Text);
                    if (resultado.Rows.Count > 0)
                    {
                        bandera = false;
                        txtApellido.Text = resultado.Rows[0]["familiarapellido"].ToString();
                        txtNombre.Text = resultado.Rows[0]["familiarnombre"].ToString();
                        groupBox1.Text = "Datos del familiar";
                    }
                    else
                    {
                        MessageBox.Show("No se encontro un afiliado o familiar con ese DNI");
                    }
                }
                    
            }
            catch
            {
                MessageBox.Show("No se encontro el Afiliado");
            }

            try
            {
                cmbPractica.DataSource = servicioweb.practicasListarPracticas();
                cmbPractica.DisplayMember = "practicadesc";
                cmbPractica.ValueMember = "practicaid";
                cmbPractica.Text = "Seleccione una practica";
            }
            catch
            {
                MessageBox.Show("No se pudieron cargar las practicas");
            }
        }

        private void frmOrdenesAtencion_Load(object sender, EventArgs e)
        {            
        }

        private void cmbPractica_SelectionChangeCommitted(object sender, EventArgs e)
        {            
            if (cmbPractica.SelectedValue.ToString() != "100")
            {
                cmbInstitucion.Enabled = true;
                try
                {
                    cmbInstitucion.DataSource = servicioweb.institucionesObtenerInstitucionesxPractica(cmbPractica.SelectedValue.ToString());
                    cmbInstitucion.DisplayMember = "institucionnombre";
                    cmbInstitucion.ValueMember = "intitucionid";
                    cmbInstitucion.Text = "Seleccione una institucion";
                }
                catch
                {
                    MessageBox.Show("No se pudieron obtener las instituciones");
                }
            }
            else
            {
                cmbInstitucion.Enabled = false;
                cmbInstitucion.Text = "";
                try
                {
                    cmbEspecialidad.DataSource = servicioweb.especialidadesListar();
                    cmbEspecialidad.DisplayMember = "Nombre";
                    cmbEspecialidad.ValueMember = "ID";
                    cmbEspecialidad.Text = "Seleccione una especialidad";
                }
                catch
                {
                    MessageBox.Show("No se pudieron obtener las especialidades");
                }
            }

        }

        private void cmbInstitucion_SelectionChangeCommitted(object sender, EventArgs e)
        {
            try
            {
                cmbEspecialidad.DataSource = servicioweb.especialidadesObtenerEspecialidadesxInstitucion(cmbInstitucion.SelectedValue.ToString());
                cmbEspecialidad.DisplayMember = "especialidadesdesc";
                cmbEspecialidad.ValueMember = "especialidadesid";
                cmbEspecialidad.Text = "Seleccione una especialidad";
            }
            catch
            {
                MessageBox.Show("No se pudieron obtener las especialidades");
            }
        }

        private void cmbEspecialidad_SelectionChangeCommitted(object sender, EventArgs e)
        {
            try
            {
                cmbProfesional.DataSource = servicioweb.profesionalesObtenerProfesionalesxEspecialidad(cmbEspecialidad.SelectedValue.ToString());
                cmbProfesional.DisplayMember = "ApellidoyNombre";
                cmbProfesional.ValueMember = "DNI";
                cmbProfesional.Text = "Seleccione un Profesional";
            }
            catch
            {
                MessageBox.Show("No se pudieron obtener los profesionales");
            }
        }

        private void TSBSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void TSBSolicitar_Click(object sender, EventArgs e)
        {
            string afiliadodni;
            string familiardni;
            if (bandera)
            {
                afiliadodni = resultado.Rows[0]["DNI"].ToString();
                familiardni = "";
            }
            else
            {
                afiliadodni = resultado.Rows[0]["afiliadodni"].ToString();
                familiardni = resultado.Rows[0]["familiardni"].ToString();
            }
            string practicaid = cmbPractica.SelectedValue.ToString();
            string institucionid = "null";
            if (cmbInstitucion.Enabled)
            {
                institucionid = cmbInstitucion.SelectedValue.ToString();
            }
       
            string profesionaldni = cmbProfesional.SelectedValue.ToString();
            string fecha = cmbFechaPedido.Value.ToString("yyyy-MM-dd");

            try
            {
                string resultado = servicioweb.atencionesInsertarAtencion(afiliadodni, familiardni, practicaid, profesionaldni, institucionid, fecha);
                MessageBox.Show("Atencion registrada correctamente");
                limpiarCampos();
            }
            catch
            {
                MessageBox.Show("No se pudo registrar la atencion");
            }
        }

        private void limpiarCampos()
        {
            resultado.Clear();
            txtDNIAfiliado.Clear();
            txtApellido.Clear();
            txtNombre.Clear();
            cmbPractica.DataSource = null;
            cmbInstitucion.DataSource = null;
            cmbProfesional.DataSource = null;
            cmbEspecialidad.DataSource = null;
            TSBSolicitar.Enabled = false;
            groupBox1.Text = "Datos";
            cmbInstitucion.Enabled = true;
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            limpiarCampos();
        }

        private void cmbProfesional_SelectionChangeCommitted(object sender, EventArgs e)
        {
            TSBSolicitar.Enabled = true;
        }
    }
}